package top.bfylu.adapter.ducks;

/**
 * 包名: top.bfylu.adapter.ducks
 * 创建时间: 2022/2/14
 *
 * @author bfy
 * @version 1.0.0
 * <p>
 * 描述:
 * @Email bfyjian@gmail.com
 **/
public class DuckTestDrive {
    public static void main(String[] args) {
        MallardDuck duck = new MallardDuck(); //先创建一只鸭子
        WildTurkey turkey = new WildTurkey(); //再创建一只火鸡
        //然后将火鸡包装进一个火鸡适配器中，使它看起来像一只鸭子。
        Duck turkeyAdapter = new TurkeyAdapter(turkey);

        //接着测试这只火鸡；让它咯咯叫，让它飞行。
        System.out.println("The Turkey says...");
        turkey.gobble();
        turkey.fly();

        //接着，调用testDuck()方法来测试鸭子，这个方法需要传入一个鸭子对象
        System.out.println("\nThe Duck says...");
        testDuck(duck);

        //重要的测试来了，我们试着传入一个假装是鸭子的火鸡。
        System.out.println("\nThe TurkeyAdapter says...");
        turkeyAdapter.quack();
        turkeyAdapter.fly();
    }

    static void testDuck(Duck duck) {
        duck.quack();
        duck.fly();
    }
}
